import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'

// import px2rem from 'postcss-plugin-px2rem'
// import tailwindcss from 'tailwindcss'
// import autoprefixer from 'autoprefixer'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
      symbolId: 'icon-[dir]-[name]'
    }),
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()]
    }),
    Components({
      resolvers: [ElementPlusResolver()]
    })
  ],
  server: {
    open: true,
    host: true,
    port: 8081,
    proxy: {
      '/airspace': {
        // target: 'http://159.75.176.172:8001/uav-service',
        target: 'http://10.3.0.91:8001/uav-service',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/airspace/, '') // 将作为识别用途的 /viewApi 字符串从请求路径中替换为 ''
      },
      '/flv': {
        target: 'http://159.75.176.172:8091',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/flv/, '') // 将作为识别用途的 /viewApi 字符串从请求路径中替换为 ''
      }
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      '@img': fileURLToPath(new URL('./src/assets/images', import.meta.url))
    }
  },
  css: {
    // postcss: {
    //   plugins: [
    //     // tailwindcss,
    //     // autoprefixer,
    //     // px2rem({
    //     //   rootValue: 100, //换算基数， 默认100
    //     //   unitPrecision: 5, //允许REM单位增长到的十进制数字。
    //     //   //propWhiteList: [],  //默认值是一个空数组，这意味着禁用白名单并启用所有属性。
    //     //   // propBlackList: [], //黑名单
    //     //   exclude: false && /(node_module)/, //默认false，可以（reg）利用正则表达式排除某些文件夹的方法，例如/(node_module)/ 。如果想把前端UI框架内的px也转换成rem，请把此属性设为默认值
    //     //   // selectorBlackList: [], //要忽略并保留为px的选择器
    //     //   // ignoreIdentifier: false,  //（boolean/string）忽略单个属性的方法，启用ignoreidentifier后，replace将自动设置为true。
    //     //   // replace: true, // （布尔值）替换包含REM的规则，而不是添加回退。
    //     //   mediaQuery: false, //（布尔值）允许在媒体查询中转换px。
    //     //   minPixelValue: 3 //设置要替换的最小像素值(3px会被转rem)。 默认 0
    //     // })
    //   ]
    // }
  }
})
